home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 32 / CD Expert nº 32.iso / Army Men TiS / data1.cab / Required_Files / rules / caf.txt < prev    next >
Text File  |  1999-10-08  |  5KB  |  140 lines

  1. //////////////////////////////////////////////////////////////////////////////
  2. // Section common to all game types
  3. //////////////////////////////////////////////////////////////////////////////
  4. include common.txt
  5. include ffire.txt
  6.  
  7. //////////////////////////////////////////////////////////////////////////////
  8. // Capture All Flag rules
  9. //////////////////////////////////////////////////////////////////////////////
  10.  
  11. variable captureAllFlagsBonus 1000
  12.  
  13. // define the pads near each of the flag bases (used by AI)
  14.  
  15. pad neargreenbase 15 greensarge1
  16. pad neartanbase 16 tansarge1
  17. pad nearbluebase 17 bluesarge1
  18. pad neargreybase 18 greysarge1
  19.  
  20. // @1 = color to possibly update flag for
  21. // @2 = color of player who captured flag
  22. // @3 = color of flag captured
  23. macro updateAllyVars 3
  24. {
  25.     if @2Captures@3Flag testvar isAlly @1 @2 = 1 then
  26.         setvar @1Captured@3Flag 1,
  27.         addscoresymbol @1 @3flag
  28.  
  29.     if reset@2FlagVars testvar isAlly @1 @2 = 1 and isAlly @1 @3 = 0 then
  30.         setvar @1Captured@3Flag 0
  31. }
  32.  
  33. // @1 = color, @2 = Capitalized color (e.g. "Green"),
  34. // @3 = other color, @4 = other color flagbase letter
  35. macro bringHomeEnemyFlag 4
  36. {
  37.     variable @1Captured@3Flag 0
  38.  
  39.     if padon @1base testvar hasitem @1sarge1 @3flag1 = 1 and isAlly @1 @3 = 0
  40.     and @1Captured@3Flag = 0 then
  41.         showmessage "@2 gained @3 flag",
  42.         setvar @1Captured@3Flag 1,
  43.         addscoresymbol @1 @3flag,
  44.         trigger @1Captures@3Flag,
  45.         trigger @1CapturesFlag,
  46.         dropitem @1sarge1 @3flag1 @4flagbase,
  47.         createexplosion @1base 137 0 @1,
  48.         playsound "mp_ctftobase.wav" (0,0) 1 2
  49.  
  50.     if reset@1FlagVars testvar isAlly @1 @3 = 1 then
  51.         setvar @1Captured@3Flag 1,    // pretend we captured allies flags
  52.         clearscoresymbols @3
  53.  
  54.     if reset@1FlagVars testvar isAlly @1 @3 = 0 then
  55.         setvar @1Captured@3Flag 0
  56.  
  57.     if reset@3FlagVars testvar isAlly @1 @3 = 1 then
  58.         setvar @1Captured@3Flag 1    // pretend ally captured my flag
  59.  
  60.     if reset@1FlagVars testvar isColorInGame @3 = 0 then
  61.         setvar @1Captured@3Flag 1    // pretend we captured flags not in game
  62. }
  63.  
  64. // playsounds if a flag is picked up by an enemy
  65. macro playPickupSound 2
  66. {
  67.     if pickedup @1flag1 by @2 testvar isAlly @1 @2 = 0 then
  68.         playsound "mp_got@1.wav" (0,0) 3 1
  69. }
  70.  
  71. // @1 = color, @2 = Capitalized color (e.g. "Green"), @3 = flagbase letter (e.g. 'g')
  72. // @4-6 are other colors, @7-8 are other colors flagbase letters
  73. macro ctfevents 9
  74. {
  75.     // deploy flags for colors in game and set the flags to strategic
  76.     if startup1 testvar iscoloringame @1 > 0 then
  77.         deploy @3flagbase,
  78.         deploy @1flag1 @3flagbase,
  79.         setitemflag @1flag1 strategic 1,
  80.         setitemflag @1flag1 stratsquare 1,
  81.         trigger reset@1FlagVars
  82.  
  83.     // check for a sarge bringing home an enemy flag
  84.     expand bringHomeEnemyFlag ( @1 "@2" @4 @7 )
  85.     expand bringHomeEnemyFlag ( @1 "@2" @5 @8 )
  86.     expand bringHomeEnemyFlag ( @1 "@2" @6 @9 )
  87.  
  88.     // update flags for allies when an ally captures a flag
  89.     expand updateAllyVars ( @1 @4 @5 )
  90.     expand updateAllyVars ( @1 @4 @6 )
  91.     expand updateAllyVars ( @1 @5 @4 )
  92.     expand updateAllyVars ( @1 @5 @6 )
  93.     expand updateAllyVars ( @1 @6 @4 )
  94.     expand updateAllyVars ( @1 @6 @5 )
  95.  
  96.     // update scores and show/play effects
  97.  
  98.     if @1CapturesFlag testvar @1Captured@4Flag = 1 and @1Captured@5Flag = 1
  99.     and @1Captured@6Flag = 1 then
  100.         trigger reset@1FlagVars,
  101.         playsound "mp_ctftobase.wav" (0,0) 1 2,
  102.         addvar @1score captureAllFlagsBonus,
  103.         trigger check@1wins,
  104.         clearscoresymbols @1
  105.  
  106.     // if flag is dropped and not picked up for 2 minutes then return it to it's base
  107.  
  108.     variable @1FlagTimeOutVar 0
  109.     variable @1FlagLastTimeOutVar 1
  110.  
  111.     if dropped @1flag1 then
  112.         triggerdelay 120000 @1FlagCheckTimeOut
  113.  
  114.     if pickedup @1flag1 then
  115.         addvar @1FlagTimeOutVar 1
  116.  
  117.     if @1FlagCheckTimeOut testvar @1FlagTimeOutVar = @1FlagLastTimeOutVar then
  118.         showmessage "@2 Flag was dropped and not picked up for 2 minutes - moved to base",
  119.         createexplosion @1flag1 128 0 @1,
  120.         playsound "mp_rebaseflag.wav" (0,0) 2 1,
  121.         moveitem @1flag1 @3flagbase,
  122.         triggerdelay 1000 @1FlagLastTimeOutIncr
  123.  
  124.     if @1FlagCheckTimeOut testvar @1FlagTimeOutVar <> @1FlagLastTimeOutVar then
  125.         triggerdelay 1000 @1FlagLastTimeOutIncr
  126.  
  127.     if @1FlagLastTimeOutIncr then
  128.         addvar @1FlagLastTimeOutVar 1
  129.  
  130.     // playsounds if a flag is picked up by an enemy
  131.     expand playPickupSound ( @1 @4 )
  132.     expand playPickupSound ( @1 @5 )
  133.     expand playPickupSound ( @1 @6 )
  134. }
  135.  
  136. expand ctfevents ( green "Green" g tan blue grey t b gr )
  137. expand ctfevents ( tan "Tan" t green blue grey g b gr )
  138. expand ctfevents ( blue "Blue" b green tan grey g t gr )
  139. expand ctfevents ( grey "Grey" gr green tan blue g t b )
  140.